iT邦幫忙

2023 iThome 鐵人賽

DAY 11
0
AI & Data

紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度系列 第 11

DAY 11 「XGBoost(eXtreme Gradient Boosting)」來做乳腺癌分類啦~

  • 分享至 

  • xImage
  •  

首先除了安裝Sklearn外需要先安裝XGBoost import xgboost as xgb

XGBoost(eXtreme Gradient Boosting)是一種高效且高性能的機器學習算法基於梯度提升樹(Gradient Boosting)在許多數據科學競賽和實際問題中取得了顯著的成功,因其速度快、性能優異而備受青睞~~~

XGBoost 是一種集成學習方法,它將多個弱學習器(通常是決策樹)組合在一起,形成一個強學習器。
它通過叠代訓練弱模型,並根據上一輪模型的預測結果來調整樣本的權重,從而降低之前預測錯誤樣本的影響,提升模型的性能。
在每一輪叠代中,XGBoost 通過計算損失函數的梯度來確定下一棵樹的結構,以最小化損失函數。
XGBoost 的一些重要特性包括:

正則化:通過正則化項(如 L1 和 L2 正則化)來控制模型的覆雜度,防止過擬合。
自定義損失函數:可以根據具體問題定義自己的損失函數,從而更好地適應不同類型的任務。
特征重要性評估:可以通過分析樹節點分裂時特征的重要性來理解模型的決策過程。
使用示例(分類問題):

import xgboost as xgb
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

# 載入乳腺癌數據集
data = load_breast_cancer()
X, y = data.data, data.target

# 將數據集劃分為訓練集和測試集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化XGBoost分類器
xgb_model = xgb.XGBClassifier(objective='binary:logistic', max_depth=3, learning_rate=0.1, n_estimators=100)

# 在訓練集上訓練模型
xgb_model.fit(X_train, y_train)

# 在測試集上進行預測
y_pred = xgb_model.predict(X_test)

# 計算準確度
accuracy = accuracy_score(y_test, y_pred)
print(f'準確度:{accuracy}')

上一篇
DAY 10 「樸素貝葉斯(Naive Bayes)」來做新聞文本分類啦~
下一篇
DAY 12 「集成學習(Ensemble Learning)Boosting 和 AdaBoost」AI專案落地必有的觀念啦~
系列文
紮實的ML機器學習原理~打造你對資料使用sklearn的靈敏度30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言